为什么会出现^m?

这个问题还得从编程环境说起

公司是在mac系统下编码,我自己的电脑是windows系统

当我想着把公司的项目带回学校自己做时,并没有发现任何问题

但是当第二天到了公司,准备将代码提交上去时,惊奇地发现所有在学校改过的文件,git diff都显示修改过,而事实上我只是改动了一两行而已,git diff显示的是整个文件都被改动过了

这样就会导致一个问题,git diff变得没有意义了;同时以后同事要提交代码,都会出现冲突,这个问题不可小视

通过查找资料,最终得知是换行符的不同导致的,简单讲就是windows系统的换行符和mac系统的换行符不一样

通过vim编辑器打开,我们也可以看到每一行末尾都有^m这个标记

所以解决问题的方法就是去掉文件每一行末尾的^m标记

方式也有很多,常见的有dos2unix、用vim命令来匹配字符然后去掉

一行命令解决的事,绝不用两行

find js/ -name “*.js” | xargs dos2unix